﻿using NP.BPMReportPlatform.Entities.BPM_Business.CommonReportConfigs;
using NP.BPMReportPlatform.Reports.CommonReportConfigs.Dtos;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

namespace NP.BPMReportPlatform.Reports.CommonReportConfigs
{
    public interface ICommonReportConfigsService : IApplicationService
    {
        Task<PagedResultDto<CommonReportPage>> GetAllPageAsync(CommonReportPageInput input);

        Task AddOrUpdatePage(UpdateCommonReportPageInput input);

        Task DeletePage(DeleteCommonReportInput input);

        Task BindPageModule(BindPageModuleInput input);

        Task DeletePageModule(DeletePageModuleInput input);

        Task<PagedResultDto<CommonReportModule>> GetAllModuleAsync(CommonReportModuleInput input);

        Task AddOrUpdateModule(UpdateCommonReportModuleInput input);

        Task DeleteModule(DeleteCommonReportInput input);

        Task<PagedResultDto<CommonReportFieldConfig>> GetAllFieldAsync(CommonReportFieldInput input);

        Task AddOrUpdateField(UpdateCommonReportFieldInput input);

        Task DeleteField(DeleteCommonReportInput input);

        Task<List<CommonReportField>> InitTable(CommonReportInitTableInput input);

        Task BatchAddFields(BatchAddCommonReportFieldInput inputs);

        Task<List<CommonReportCheckConfigs>> GetCheckConfigs();

        Task<PagedResultDto<CommonReportCustomScripts>> GetAllScriptAsync(CommonReportCustomScriptsInput input);

        Task AddOrUpdateScript(UpdateCommonReportCustomScriptsInput input);

        Task DeleteScript(DeleteCommonReportInput input);
    }
}
